package com.zhentao.filter;

import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.annotation.CrossOrigin;

/**
 * 网关路由配置
 */
@Configuration
@CrossOrigin(origins = "*")
public class GatewayRoutes {

    @Bean
    public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
        System.out.println("=== 网关路由配置加载 ===");
        return builder.routes()
                // 用户服务路由
                .route("user_route", r -> r.path("/user/**")
                        .uri("http://localhost:8081"))
                // 动态服务路由（本机开发：直连8082）
                .route("dynamic_route", r -> r.path("/api/dynamic/**")
                        .uri("http://localhost:8082"))
                
                // 动态服务媒体静态资源路由
                .route("dynamic_media_route", r -> r.path("/media/**")
                        .uri("http://localhost:8082"))

                // 首页服务路由 - 红娘相关接口（端口8081）
                .route("homepage_matchmaker_route", r -> r.path("/api/matchmaker/**")
                        .uri("http://localhost:8081"))

                // 首页服务路由 - 其他首页接口（端口8081）
                .route("homepage_route", r -> r.path("/api/home/**")
                        .uri("http://localhost:8081"))

                // 首页服务路由 - 成功案例接口（端口8081）
                .route("homepage_case_route", r -> r.path("/api/success-case/**")
                        .uri("http://localhost:8081"))

                // 首页服务路由 - 活动接口（端口8081）
                .route("homepage_activity_route", r -> r.path("/api/activity/**")
                        .uri("http://localhost:8081"))

                // 首页服务路由 - 课程接口（端口8081）
                .route("homepage_course_route", r -> r.path("/api/course/**")
                        .uri("http://localhost:8081"))
                
                // 登录服务路由（验证码、微信登录等）
                .route("login_route", r -> r.path("/api/login/**")
                        .uri("http://localhost:8087"))

                // Essential服务路由 - 头像静态资源
                .route("avatar_static_route", r -> r.path("/avatars/**")
                        .uri("http://localhost:1005"))

                // Essential服务路由 - API接口
                .route("essential_route", r -> r.path("/api/checkin/**", "/api/user/**", "/api/vip/**", "/api/avatar/**")
                        .uri("http://localhost:1005"))
                // 消息服务路由（预留）
                .route("message_route", r -> r.path("/api/message/**")
                        .uri("http://localhost:1004"))
                //推荐用户（改为8089端口，避免与网关和登录服务冲突）
                .route("recommend_route", r -> r.path("/api/recommend/**")
                        .uri("http://localhost:8089"))
                
                // 管理端服务路由
                .route("admin_route", r -> r.path("/admin/**")
                        .uri("http://localhost:8088"))
                .build();
    }

}
